Call for TPF Grant "Volunteers" : HTML-Widgets-NavMenu

Shlomi Fish on 2006-07-11T14:29:23

About the Project

In a message to the Hackers-IL mailing list a certain hacker said that the only safe generalisation in regards to how a certain code is perceived to be, was that her own code will look like junk to her within a month, and I since found it to be more and more true.

HTML-Widgets-NavMenu is a module I wrote about two years ago, as a way to help me generate and maintain complex HTML navigation menus. See this Perl.com article for some of its features as well as general navigation menus patterns that are supported by it.

Version 1.0000, which is the latest available on CPAN is relatively modular, has a comprehensive test suite of unit tests and system tests with exactly 300 tests, and a full test coverage, for everything except the POD coverage. It also has a well-defined interface.

However, some things I have in mind for it are not well-supported by the current code, and may require some extensive modification. The purpose of the proposed project is to extend it appropriately.

Scope of the Project

The project should do all or some of the following:

  1. Enhance HTML-Widgets-NavMenu and make it more robust in handling semi-expanded trees (where part of the nav menu tree is revealed while the other is not.). At the moment, such support is kludgy and may not work very well.

    1. I believe this may require translating the state of the nav menu into an intermediate tree format, which will in turn be converted to HTML.

  2. Add support for some arbitrary HTML attributes like id="", class="", the various JavaScript handlers, etc.
  3. Add support for JavaScript (and possibly also AJAX if deemed appropriate).
  4. Add support for a XML/YAML/JSON/etc. input and output, and possibly other generalisations. (like making use of XSLT)
  5. At the moment, HTML-Widgets-NavMenu may be somewhat slow. The project can investigate ways to optimise it, possibly even by re-implementing some parts of the back-end in ANSI C.

My Role in this Suggestion

This is not a proposal for a TPF grant, but rather an idea for prospective Perl hackers who are looking for good ideas for putting grant proposals on. This is in a similar spirit to this call for volunteers by Adam Kennedy.

I can act as a mentor for the grant, but do not want to do it myself, both because I have a full time job, am busy organising various Israeli FOSS-related events, and also would like to encourage other hackers to contribute to my projects.

In case you want to take this project, you can contact me for some rudimentary guidance (and referral to people I know who may be able to give you better guidance), and eventually submit a grant proposal.


I don't get it

pudge on 2006-07-11T16:13:21

If you're not doing the work, why bother proposing that someone propose a grant proposal? Why not just say, "I'd like someone to take over this module, and additionally, I think it might make a decent grant proposal"?

Re:I don't get it

Shlomi Fish on 2006-07-11T22:00:01

Hi!

If you're not doing the work, why bother proposing that someone propose a grant proposal? Why not just say, "I'd like someone to take over this module, and additionally, I think it might make a decent grant proposal"?

I don't really understand why there's such a big difference between them. I was suggesting a good idea for a grant, and if someone is interested on hacking on the module even without the money, then I'll be fully supportive of him.

Note that if no one volunteers (or receives a grant) then I'll probably do the work when I have the time or in the mood. But the entire purpose of the grant is to make other people involved in hacking my code. From my experience, such people can often give a new perspective on its development and come with many good ideas and code for further development.

I hope you now better understand my motives.

Re:I don't get it

pudge on 2006-07-11T22:10:57

I don't really understand why there's such a big difference between them.

They are two distinct phases of the process. Who knows: maybe you'll find someone to do the work who does not want or need a grant (like almost every other project on the CPAN).

But the entire purpose of the grant is to make other people involved in hacking my code. From my experience, such people can often give a new perspective on its development and come with many good ideas and code for further development.

From my experience, it's a poor motivator. It may get more people interested, but often has a detrimental effect on the final project. The project should come first, and a grant should be sought only if there's no other good way to accomplish the goals of the project, but shouldn't be used as a way to attract people to work on it.

Licensing Issue

clscott on 2006-07-11T17:59:12

What might prevent someone from doing this (or even using the module) is the conflicting license information.

The Distributions says that it is licensed under the BSD license [0] however the individual files are licensed under MIT [1]

0. http://search.cpan.org/dist/HTML-Widgets-NavMenu/
1. http://search.cpan.org/dist/HTML-Widgets-NavMenu/lib/HTML/Widgets/NavMenu.pm#COP YRIGHT_AND_LICENSE

Re:Licensing Issue

Shlomi Fish on 2006-07-11T21:53:21

Hi ciscott!

The actual licence for the module is the MIT X11 licence. The 'bsd' indicator for the licence is part of the module's meta-data because it's the closest choice for it in Module::Build, and in the PAUSE categorisation.

It does not make too much difference. The MIT X11 is considered part of the BSD family of licences, which includes licences that are completely non-copyleft as the original BSD, the modified BSD, MIT X11, the Apache licence, the Python licence, and so forth.

Even software whose source code is distributed under the Public Domain can be considered BSD-style. Just note that the Public Domain may have some complications when used for source code.